package handler

// // // > 设置角色信息
// // func heroIconHandler(c *gin.Context) {
// // 	msg := &login.HeroIconReq{}
// // 	err := c.ShouldBind(msg)
// // 	if err != nil {
// // 		logger.Warn("[handler] heroIconHandler ShouldBindJSON fail ", err.Error())
// // 		c.JSON(http.StatusBadRequest, gin.H{"Error": "参数错误"})
// // 		return
// // 	}

// // 	// TODO: 获取了之后，将数据写入mysql，收到之后马上返回ok，然后去处理本地写库
// // 	logger.Debug("faesfewsgerd", msg.Pid, "  ", msg.HeroId)
// // 	logindbmanager.GetInst().SetPlayerModeid(msg.Pid, msg.HeroId, msg.PlayerLevel)
// // 	c.JSON(http.StatusOK, gin.H{})
// // }

// /*
// 设置角色等级
// */
// func uplevelHandler(c *gin.Context) {
// 	msg := &protoMsg.UpLevelReq{}
// 	err := c.ShouldBind(msg)
// 	if err != nil {
// 		logger.Warn("[handler] heroIconHandler ShouldBindJSON fail ", err.Error())
// 		c.JSON(http.StatusBadRequest, gin.H{"Error": "参数错误"})
// 		return
// 	}

// 	// TODO: 获取了之后，将数据写入mysql，收到之后马上返回ok，然后去处理本地写库
// 	logindbmanager.GetInst().SetPlayerLevel(msg.PID, msg.PlayerLevel)
// 	c.JSON(http.StatusOK, gin.H{})
// }

// // 设置角色职业
// func TransJobHandler(c *gin.Context) {
// 	msg := &protoMsg.TransJobNtf{}
// 	err := c.ShouldBind(msg)
// 	if err != nil {
// 		logger.Warn("[handler] OnTransJobHandler ShouldBindJSON fail ", err.Error())
// 		c.JSON(http.StatusBadRequest, gin.H{"Error": "参数错误"})
// 		return
// 	}

// 	// TODO: 获取了之后，将数据写入mysql，收到之后马上返回ok，然后去处理本地写库
// 	logindbmanager.GetInst().SetPlayerJob(msg.PID, msg.JobID)
// 	c.JSON(http.StatusOK, gin.H{})
// }

// //func ServerListHandler(c *gin.Context) {
// //	ret := logindbmanager.GetInst().GetUserGroupListAckByCache()
// //	logger.Debug(logger.LogKey_Default, "[handler] OnServerList 获取服务器列表. 客户端ip: ", c.ClientIP())
// //	c.JSON(http.StatusOK, ret)
// //}

// // GM后台 获得白名单列表
// func GetWhiteListGmHandler(c *gin.Context) {
// 	data := logindbmanager.GetInst().GetAllWhiteList()
// 	ret := &login.GetAllWhiteListGmAck{Count: len(data), Data: data}
// 	c.JSON(200, ret)
// 	//c.JSON(200, gin.H{"code": 0, "Count": len(ret), "Data": ret})
// }

// // GM后台 设置白名单
// func SetOneWhiteListGmHandler(c *gin.Context) {
// 	c.Request.ParseForm()
// 	req := &login.SetOneWhiteListGmReq{}
// 	err := c.BindJSON(req)
// 	if err != nil {
// 		c.JSON(400, gin.H{"code": 400, "message": "param invalid"})
// 		return
// 	}
// 	ret := logindbmanager.GetInst().SetOneWhiteList(req.WType, req.UID, req.OpenId, req.ChannelID, req.DeviceId)
// 	if ret == nil {
// 		c.JSON(200, &login.CommonRet{
// 			Code:    401,
// 			Message: "设置失败",
// 		})
// 		return
// 	}
// 	c.JSON(200, &login.SetOneWhiteListGmRet{Data: ret})
// }
// func SetBatchWhiteListGmHandler(c *gin.Context) {
// 	c.Request.ParseForm()
// 	req := &login.AddMultiWhiteListGmReq{}
// 	err := c.BindJSON(req)
// 	if err != nil {
// 		c.JSON(400, gin.H{"code": 400, "message": "param invalid"})
// 		return
// 	}
// 	ret := logindbmanager.GetInst().SetMultiWhiteList(req.Array)
// 	if ret == nil {
// 		c.JSON(200, &login.CommonRet{
// 			Code:    401,
// 			Message: "设置失败",
// 		})
// 		return
// 	}
// 	c.JSON(200, &login.AddMultiWhiteListGmRet{Count: len(ret), Data: ret})
// }
// func GetOneWhiteListGmHandler(c *gin.Context) {
// 	c.Request.ParseForm()
// 	req := &login.SetOneWhiteListGmReq{}
// 	err := c.BindJSON(req)
// 	if err != nil {
// 		c.JSON(400, gin.H{"code": 400, "message": "param invalid"})
// 		return
// 	}
// 	ret := logindbmanager.GetInst().GetOneWhiteList(req.UID, req.OpenId, req.ChannelID, req.DeviceId)
// 	if ret == nil {
// 		c.JSON(200, &login.CommonRet{
// 			Code:    405,
// 			Message: "没找到数据",
// 		})
// 		return
// 	}
// 	c.JSON(200, gin.H{"Count": len(ret), "Data": ret})
// }

// // GM后台 删除白名单列表
// func DeleteWhiteListGmHandler(c *gin.Context) {
// 	c.Request.ParseForm()
// 	req := &login.SetOneWhiteListGmReq{}
// 	err := c.BindJSON(req)
// 	if err != nil {
// 		c.JSON(400, gin.H{"code": 400, "message": "param invalid"})
// 		return
// 	}
// 	if num := logindbmanager.GetInst().DeleteWhiteList(req.DeleteId); num > 0 {
// 		c.JSON(200, login.CommonRet{
// 			Code:    0,
// 			Message: "delete num:" + fmt.Sprint(num),
// 		})
// 		return
// 	}
// 	c.JSON(200, login.CommonRet{
// 		Code:    401,
// 		Message: "nothing changed",
// 	})

// }

// func CreateGameAreaGmHandler(c *gin.Context) {
// 	c.Request.ParseForm()
// 	webReq := &login.CreateAreasGmReq{}
// 	err := c.BindJSON(webReq)
// 	if err != nil {
// 		c.JSON(400, gin.H{"code": 400, "message": "param invalid"})
// 		return
// 	}
// 	var data = &protoMsg.AreaMD{
// 		AreaID:    webReq.AreaID,
// 		AreaName:  webReq.AreaName,
// 		CreatedAt: time.Now(),
// 		UpdatedAt: time.Now(),
// 	}

// 	after := logindbmanager.GetInst().CreateOneAreaInfo(data)
// 	if after == nil {
// 		c.JSON(500, login.CommonRet{
// 			Code:    500,
// 			Message: "not success to create area",
// 		})
// 		return
// 	}

// 	c.JSON(200, login.CreateAreasGmAck{
// 		CommonRet: login.CommonRet{},
// 		Data: &login.AreaInfo{
// 			AreaID:   after.AreaID,
// 			AreaName: after.AreaName,
// 		},
// 	})
// }
// func DeleteGameAreaGmHandler(c *gin.Context) {
// 	c.Request.ParseForm()
// 	webReq := &login.DeleteAreasGmReq{}
// 	err := c.BindJSON(webReq)
// 	if err != nil {
// 		c.JSON(400, gin.H{"code": 400, "message": "param invalid"})
// 		return
// 	}
// 	out, groups := logindbmanager.GetInst().DeleteAreaInfo(webReq.AreaIDs, webReq.IgnoreExistZone)
// 	if len(groups) > 0 {
// 		c.JSON(400, login.CommonRet{
// 			Code:    401,
// 			Message: "Area have many gameSrv ,please remove them first:" + gcommon.ToJsonString(groups),
// 		})
// 		return
// 	}
// 	if len(out) == 0 {
// 		c.JSON(404, login.CommonRet{
// 			Code:    404,
// 			Message: "failed to delete,may not exist",
// 		})
// 		return
// 	}
// 	webAck := login.DeleteAreasGmAck{
// 		CommonRet:     login.CommonRet{},
// 		SuccessDelete: nil,
// 	}
// 	for _, v := range out {
// 		webAck.SuccessDelete = append(webAck.SuccessDelete, &login.AreaInfo{
// 			AreaID:    v.AreaID,
// 			AreaName:  v.AreaName,
// 			GroupList: nil,
// 		})
// 	}
// 	sort.Slice(webAck.SuccessDelete, func(i, j int) bool {
// 		return webAck.SuccessDelete[i].AreaID < webAck.SuccessDelete[j].AreaID
// 	})
// 	c.JSON(200, webAck)

// }

// func AddGameGroupGmHandler(c *gin.Context) {
// 	c.Request.ParseForm()
// 	webReq := &login.CreateGameGroupGmReq{}
// 	err := c.BindJSON(webReq)
// 	if err != nil {
// 		c.JSON(400, gin.H{"code": 400, "message": "param invalid"})
// 		return
// 	}
// 	after := logindbmanager.GetInst().CreateOrUpdateGroupInfo(&webReq.Data)
// 	if after == nil {
// 		c.JSON(500, login.CommonRet{
// 			Code:    500,
// 			Message: "not success to create area",
// 		})
// 		return
// 	}

// 	c.JSON(200, login.CreateGameGroupGmAck{
// 		CommonRet: login.CommonRet{},
// 		Data:      after,
// 	})
// }

// func ModifyGameGroupGmHandler(c *gin.Context) {

// }

// func DeleteGameGroupGmHandler(c *gin.Context) {
// 	c.Request.ParseForm()
// 	webReq := &login.DeleteGameGroupGmReq{}
// 	err := c.BindJSON(webReq)
// 	if err != nil {
// 		c.JSON(400, gin.H{"code": 400, "message": "param invalid"})
// 		return
// 	}
// 	groups := logindbmanager.GetInst().DeleteGroup(webReq.GroupIDs)
// 	if len(groups) == 0 {
// 		c.JSON(404, login.CommonRet{
// 			Code:    404,
// 			Message: "failed to delete,may not exist",
// 		})
// 		return
// 	}
// 	webAck := login.DeleteGameGroupGmAck{
// 		CommonRet:     login.CommonRet{},
// 		SuccessDelete: nil,
// 	}
// 	for _, v := range groups {
// 		newGinfo := &login.GroupInfo{}
// 		newGinfo.UpdateFromMd(v)
// 		webAck.SuccessDelete = append(webAck.SuccessDelete, newGinfo)
// 	}
// 	sort.Slice(webAck.SuccessDelete, func(i, j int) bool {
// 		return webAck.SuccessDelete[i].GroupID < webAck.SuccessDelete[j].GroupID
// 	})
// 	c.JSON(200, webAck)
// }

// func SetSrvRecommendOrNewTagGmHandler(c *gin.Context) {
// 	c.Request.ParseForm()
// 	req := &login.SetSrvRecommendOrNewGmReq{}
// 	err := c.BindJSON(req)
// 	if err != nil {
// 		c.JSON(400, gin.H{"code": 400, "message": "param invalid"})
// 		return
// 	}
// 	operation := 1
// 	val := false
// 	if req.IsRecommend != nil {
// 		operation = 1
// 		val = *req.IsRecommend
// 	} else if req.IsNew != nil {
// 		operation = 2
// 		val = *req.IsNew
// 	} else {
// 		c.JSON(400, gin.H{"code": 400, "message": "param invalid"})
// 		return
// 	}
// 	isset := logindbmanager.GetInst().SetOneSrvRecommendOrNewTag(req.GroupID, operation, val)
// 	if isset {
// 		c.JSON(200, login.CommonRet{
// 			Code:    0,
// 			Message: "",
// 		})
// 	} else {
// 		c.JSON(200, login.CommonRet{
// 			Code:    401,
// 			Message: "not success",
// 		})
// 	}
// }
// func GetSrvAllComponentInfoGmHandler(c *gin.Context) {
// 	c.Request.ParseForm()
// 	webReq := &login.GetAllComponentInfoGmReq{}
// 	err := c.BindJSON(webReq)
// 	if err != nil {
// 		c.JSON(400, gin.H{"code": 400, "message": "param invalid"})
// 		return
// 	}
// 	groupid := webReq.GroupID

// 	sidli := serverMgr.GetEtcdSvrInfosByGroupID(groupid, gcommon.ServerTypeLobby)
// 	sidli = append(sidli, serverMgr.GetEtcdSvrInfosByGroupID(groupid, gcommon.ServerTypeInstance)...)
// 	sidli = append(sidli, serverMgr.GetEtcdSvrInfosByGroupID(groupid, gcommon.ServerTypeScene)...)
// 	sidli = append(sidli, serverMgr.GetEtcdSvrInfosByGroupID(groupid, gcommon.ServerTypeGateway)...)
// 	//sidli = append(sidli, serverMgr.GetEtcdSvrInfosByGroupID(groupid, gcommon.ServerTypeInter)...)//唯一服务器 不能灰度;
// 	//sidli = append(sidli, serverMgr.GetEtcdSvrInfosByGroupID(groupid, gcommon.ServerTypeCenter)...)//无状态 不需要灰度;
// 	if len(sidli) == 0 {
// 		c.JSON(404, login.CommonRet{Code: 404, Message: "Group ETCD not exist"})
// 		return
// 	}
// 	c.JSON(200, &login.GetAllComponentInfoGmAck{Data: sidli})
// 	return
// }

// // GM设置 服务器维护状态
// func SetSrvMaintenanceStatusGmHandler(c *gin.Context) {
// 	c.Request.ParseForm()
// 	req := &login.SetSrvMaintenanceGmReq{}
// 	err := c.BindJSON(req)
// 	if err != nil {
// 		c.JSON(400, gin.H{"code": 400, "message": "param invalid"})
// 		return
// 	}
// 	isset := logindbmanager.GetInst().SetOneSrvMaintenance(req.GroupID, req.IsMaintenance)
// 	if isset {
// 		c.JSON(200, login.CommonRet{
// 			Code:    0,
// 			Message: "",
// 		})
// 	} else {
// 		c.JSON(200, login.CommonRet{
// 			Code:    401,
// 			Message: "not success",
// 		})
// 	}
// }

// // 获取本区服信息 开服时间 服务器状态 负载等
// // ?GroupId=3
// func GetMySrvOpenTimeHandler(c *gin.Context) {
// 	c.Request.ParseForm()
// 	//groupId := gcommon.StringToUint32(c.Request.FormValue("GroupID"))
// 	var query = &login.GetSrvOpenTimeReq{}
// 	err := c.BindQuery(query)
// 	if err != nil {
// 		logger.Warn("[handler] OnSrvOpenTimeHandler BindQuery fail ", err.Error())
// 		c.JSON(400, gin.H{"code": 400, "message": "param invalid"})
// 		return
// 	}
// 	logger.Info("query=", query)
// 	groupId := query.GroupID
// 	if groupMd := logindbmanager.GetInst().GetGroupMDByCache(groupId); groupMd != nil {
// 		c.JSON(200, gin.H{"code": 0, "Data": logindbmanager.ToLoginGroupMsg(groupMd)})
// 		return
// 	}
// 	c.JSON(400, gin.H{"code": 400, "message": "GroupID not exist"})
// 	logger.Warn("GroupID not exist", groupId)
// }
